package IO;

import java.io.*;

/*缓冲流:是一对高级流，作用是贾逵啊读写效率
* 1）BufferedOutputStream：缓冲输出流
* 2）BufferedInputStream：缓冲输入流
* 缓冲流读写效率块的原因：
* 1）缓冲流内部有一个8KB的字节数组，
*   看着是一个一个字节的读取，但其实缓冲流底层已经将他转换为块读写了
* 缓冲流何时用才有意义：
* 1）不同的高级流由不同的功能，但只有缓冲流才具备加速的功能（块读写）
*   其他的高级流不具备加速功能，都是单字节读写
*   此时若又想完成功能又想加速处理，则需要流连接，将功能流连接到缓冲流上*/
public class copyDemo3Buffered {
    public static void main(String[] args) throws Exception{
       FileInputStream fis = new FileInputStream("123.png");
        BufferedInputStream bff = new BufferedInputStream(fis);
        FileOutputStream fos = new FileOutputStream("1231.png");
        BufferedOutputStream bffo = new BufferedOutputStream(fos);
        long star = System.currentTimeMillis();
        int d;
        while ((d =bff.read())!=-1){
            bffo.write(d);
        }
        long end = System.currentTimeMillis();
        System.out.println(end-star);
        bff.close();
        bffo.close();
    }
}
